Перейти к основному содержимому

iRidium для BACnet IP

Набор инструментов для создания интерфейса визуализации

Драйвер предназначен для управления оборудованием BACnet. Для ознакомления используйте пример проекта:

Подсказка

Описание

iRidium для BACnet - это набор инструментов, позволяющий создать интерфейс для управления домом или офисом на базе одноименного оборудования. Реализует команды протокола BACnet.

Подключение

Подсказка

Панели управления (iOS, Android, Windows, Mac) могут управлять оборудованием BACnet только через BACnet контроллер.

BacnetConnection.png

Импорт из файла *xml и *csv

Конфигурацию оборудования можно сохранить в формате xml, или csv и импортировать в iRidium. У файлов формата csv поддерживается ede и hl структура.

  1. Откройте и авторизуйтесь в StruxureWare Building Operation Workstation.

  2. В StruxureWare Building Operation, кликните правой кнопкой мыши по Enterprise server, и выберите пункт Import из раскрывающегося списка.

BacnetImport.png

  1. Создайте новый проект в iRidium Studio, на панели Devices выберите Import > BACnet Project(*.xml, *.csv) (beta). В появившемся окне выберите необходимый файл для импорта.

BACnetProject1.png

  1. После импорта появится диалог для выбора сети и сабдевайсов. На основе файла импорта сформируется сеть с подустройствами, командами и фидбеками.

Bacnet dev.png

Bacnet dev2.png

Подсказка

При повторном импорте:

  1. Cети будут объединены по настройкам подключения Host и Port;
  2. При совпадении настроек соединения, подустройства сравниваются по именам, и будут добавлены только новые.

Добавление драйвера вручную

Если у вас нет возможности импортировать устройство, добавьте драйвер BACnet в проект из базы данных iRidium:

BACnetProject4.png

Настройка параметров подключения

Когда с помощью импортирования или вручную драйвер добавлен в проект, нужно указать настройки подключения.

BACnetProject5.png

  • Log Level - уровень логирования драйвера.
  • Host - IP адрес контроллера.
  • Port - порт подключения к устройству для получения данных (по умолчанию 47808, драйвер посылает запросы агенту).
  • Send Timeout - время таймаута отправки в миллисекундах.
  • Update Timeout - время подготовки данных в буфер для отправки в миллисекундах. Update Timeout должен быть в несколько раз больше чем Send Timeout.
  • Re-subscribe Timeout (min) - время обновления подписки.
  • LocalPort - порт подключения к устройству для получения данных (по умолчанию 47808, агент посылает ответ драйверу).
Подсказка

При наличии двух драйверов в проекте, LocalPort должен быть разным.

Настройка параметров BACnet-устройств

Устройства в сети BACnet имеют несколько важных настроек.

BACNet2.png

  • Device Instance - Идентификатор устройства Bacnet. Его следует посмотреть в web интерфейсе контроллера
  • Priority - Этот параметр может иметь значение в диапазоне 1-16 и обозначает приоритет операции записи. Приоритезация команд BACnet
  • Network ID - Номер сети уникально идентифицирует сеть в системе BACnet. Приложение i-Vu® автоматически генерирует все номера сети. Номера сетей должны быть уникальными в системе BACnet независимо от протокола. BACnet сетевые номера MS / TP и BACnet / IP не могут быть дублированы. Номер сети может составлять от 1 до 65534 (с 65 535 забронированными для трансляций).
  • Maс address - являются идентификатором нижнего уровня в BACnet. В i-Vu® Open, MAC варьируется от 1 до 99 и должны быть уникальными для каждого устройства в пределах сети.
  • Update type - тип обновления фидбэков в протоколе (подписка или опрос):
    • Auto (subscribe cov or read property) - автоматическое определение типа.
    • Read property - принудительный опрос переменных.

Изменение параметров подключения

Возможность смены параметров подключения нужна, если вы отключаетесь от Wi-Fi сети объекта автоматизации и начинаете использовать 3G или другую Wi-Fi сеть. Чтобы управление продолжило работать, нужно переключиться с локального на публичный IP адрес интернет-маршрутизатора.

Переключение не происходит автоматически, вам нужно будет нажать на клавишу выбора режима соединения. Для возможности удаленного доступа необходимо сделать порты управления системой автоматизации публичными. Для этого настраивают службу Port Forwarding на интернет-маршрутизаторе. Защищенное соединение может обеспечить VPN.

  1. Скачайте шаблон (*.js) (правая кнопка: "Сохранить объект как..."), добавьте шаблон в редактор скриптовIcon Scripts.pngклавишей (+) Add Script from file

  2. Настройте параметры скрипта, как показано в примере:

function Internal_1() {
IR.GetDevice('BACnet').SetParameters({Host: "192.168.0.95", Port: 5001, "SendTimeOut": 2000, "UpdateTimeOut": 1000});
}
function External_1() {
IR.GetDevice('BACnet').SetParameters({Host: "215.110.10.10", Port: 5001, "SendTimeOut": 2000, "UpdateTimeOut": 1000});
}

Скопируйте имя драйвера из Projсet Device Panel, список параметров нужно скопировать из примера в точности.

  1. Выберите кнопку, которая будет отвечать за переключение Internal и External параметров. Откройте Macros Editor для события Press (Object Properties > Programming), выберите команду Script Call и добавьте ее двойным кликом. Выберите имя функции, которую вызовет кнопка:

Script call internal-external.png

Теперь каждое нажатие на кнопку будет применять соответствующий набор настроек подключения.

Commands & Feedbacks

SendRecieve.png

Для управления оборудованием настройте команды (Commands) и каналы обратной связи (Feedbacks). Чтобы отправить команду, перетяните ее на графический элемент и укажите значение (Value), которое необходимо отправить. Чтобы отобразить значение с канала обратной связи, перетащите Feedback на графический элемент, и укажите, каким образом вывести значение (Value).

Подробнее о работе с графическими элементами написано в статье "Типы графических элементов".

Настройка

Для настройки команды или фидбека необходимо установить значение следующих полей:

  • Property Type - тип значения канала/тега:
    • Present Value - режим чтения значения с устройства,
    • Out of Service - режим записи значения с панели,
  • Object Type - тип переменной,
  • ObjectID - идентификатор переменной (входа, выхода). Его можно найти в Web интерфейсе контроллера (BaCnet Interface - Application - Points - Переменная - Вкладка Advanced),
  • COV increment - минимальное изменение величины, при котором происходит обновление данных.

В данный момент поддерживаются следующие типы переменных:

Object Types

типописание
analog-inputАналоговый вход
analog-outputАналоговый выход
analog-valueАналоговое значение
binary-inputБинарный вход
binary-outputБинарный выход
binary-valueБинарное значение
multi-state-inputВход со многими состояниями
multi-state-outputВыход со многими состояниями
multi-state-valueЗначение со многими состояниями

Скриптовые методы

.SetSubDeviceParam()

Функция реализована для настройки параметров в i3Pro, у подустройств драйвера BACnet.

Синтаксис

IR.GetDevice("DeviceName").SetSubDeviceParam("SubDeviceName", {
"device_instance": value,
"priority": value,
"network_id": value,
"mac_address": “value”,
"update_type": value
});

на входезначениеописание
DeviceName"BACNet Network"type: String
Имя драйвера BACNet.
SubDeviceName"BACNet Device"type: String
Имя подустройства в драйвере BACNet.
на выходе
device_instance0 - 4194302type: Number
Параметр для изменения идентификатора.
priority1 - 16type: Number
Параметр для изменения приоритета операции записи.
network_id1 - 65534type: Number
Параметр задаёт значение ID (является условно изменяемым параметром, если у устройства есть настроенное Network_ID оно пришлет его нам и в i3Pro запишет пришедшее значение, если нет, то при отправке сообщений пакеты будут отсылаться с заданным значением).
mac_address"45:67:89:AB:DE:23"type: String
Параметр для изменения настройки MAC-адреса.
update_typeIR.BACNET_AUTO //
IR.BACNET_READ_PROPERTY
type: Object
Параметр для изменения способа получения фидбэков. Существует 2 способа:
IR.BACNET_AUTO (если устройство поддерживает функцию работы по подписке - фидбеки будут приходить от устройства при изменении, если устройство не поддерживает функцию работы по подписке - i3Pro будет опрашивать устройство).
IR.BACNET_READ_PROPERTY (i3Pro будет опрашивать устройство).

Пример

IR.GetDevice("BACNet Network").SetSubDeviceParam("BACNet Device"
"device_instance" : 5,
"priority" : 8,
"network_id" : 1,
"mac_address" : "45:67:89:AB:DE:23",
"update_type" : IR.BACNET_READ_PROPERTY

IR.GetDevice("BACNet Network").Connect();`
Подсказка

После отработки функции .SetSubDeviceParam происходит Disconnect, для повторного подключения к драйверу добавьте функцию IR.GetDevice("DeviceName").Connect().GetSubDeviceParam()

.GetSubDeviceParam()

Функция для получения параметров подустройства в реальном времени.

Синтаксис IR.GetDevice("DeviceName").GetSubDeviceParam("SubDeviceName")

на входезначениеописание
DeviceName"BACNet Network"type: String
Имя драйвера BACNet.
SubDeviceName"BACNet Device"type: String
Имя подустройства в драйвере BACNet.
на выходе
device_instance0 - 4194302type: Number
Идентификатор устройства.
priority1 - 16type: Number
Приоритет операции записи.
network_id1 - 65534type: Number
Идентификатор сети.
Network_ID является условно изменяемым параметром, если у устройства есть настроенный Network_ID - оно пришлет его и в i3 Pro сохранится пришедшее значение, если нет - при отправке сообщений пакеты будут отсылаться с заданным значением (по умолчанию или функцией SetSubDeviceParam().
mac_address"45:67:89:AB:DE:23"type: String
MAC-адрес.
update_typeIR.BACNET_AUTO //
IR.BACNET_READ_PROPERTY
type: Object
Способ получения фидбэков.

Пример

IR.GetDevice("BACNet Network").GetSubDeviceParam("BACNet Device")